Next | Prev | Up | Top | Contents | Index

Configuring a System for GRIO

Caution: The procedure in this section can result in the loss of data if it is not performed properly. It is recommended only for experienced IRIX system administrators. This section describes how to configure a system for GRIO: create an XLV logical volume with a real-time subvolume, make a filesystem on the volume and mount it, and configure and restart the ggd daemon.

  1. Choose disk partitions for the XLV logical volume and confirm the hardware configuration as described in the section "Hardware Configuration Requirements for GRIO" in this chapter. This includes modifying the disk drive parameters as described in the section "Disabling Disk Error Recovery" in this chapter.

  2. Determine the values of variables used while constructing the XLV logical volume:

    vol_name

    The name of the volume with a real-time subvolume.

    rate

    The rate at which applications using this volume access the data. rate is the number of bytes per time quantum per stream (the rate) divided by 1K. This information may be available in published information about the applications or from the developers of the applications.

    num_disks

    The number of disks included in the real-time subvolume of the volume.

    stripe_unit

    When the real-time disks are striped (required for Video on Demand and recommended otherwise), this is the amount of data written to one disk before writing to the next. It is expressed in 512-byte sectors.

    For non-rotor guarantees:

    stripe_unit = rate * 1K / (num_disks * 512)

    For rotor guarantees:

    stripe_unit = rate * 1K / 512

    extent_size

    The filesystem extent size.

    For non-rotor guarantees:

    extent_size = rate * 1K

For rotor guarantees:

extent_size = rate * 1K * num_disks

opt_IO_size

The optimal I/O size. It is expressed in kilobytes. By default, the possible values for opt_IO_size are 64 (64K bytes), 128 (128K bytes), 256 (256K bytes), and 512 (512K bytes). Other values can be added by editing the /etc/grio_disks file (see the section "/etc/grio_disks File Format" in this chapter for more information).

For non-rotor guarantees, opt_IO_size must be an even factor of stripe_unit, but not less than 64.

For rotor guarantees opt_IO_size must be an even factor of rate. Setting opt_IO_size equal to rate is recommended.

Table 9-3 gives examples for the values of these variables.

Examples of Values of Variables Used in Constructing an XLV Logical Volume Used for GRIO
VariableType of Guarantee CommentExample Value
vol_name anyThis name matches the last component of the device name for the volume, /dev/dsk/xlv/vol_name xlv_grio
rate anyFor this example, assume 512 KB per second per stream512
num_disks anyFor this example, assume 4 disks4
stripe_unit non-rotor512*1K/(4*512)256
 rotor512*1K/5121024
extent_size non-rotor512 * 1K 512k
 rotor512 * 1K * 42048k
opt_IO_size non-rotor128/1 = 128 or 128/2 = 64 are possible64
 rotorSame as rate 512

  1. Create an xlv_make script file that creates the XLV logical volume. (See the section "Creating Volume Objects With xlv_make" in Chapter 7 for more information.) Example 9-1 shows an example script file for a volume.

    Example 9-1 : Configuration File for a Volume Used for GRIO

# Configuration file for logical volume vol_name. In this
# example, data and log subvolumes are partitions 0 and 1 of
# the disk at unit 1 of controller 1. The real-time
# subvolume is partition 0 of the disks at units 1-4 of
# controller 2.
# 
vol vol_name 
data 
plex 
ve dks1d1s0 
log 
plex 
ve dks1d1s1 
rt 
plex 
ve -stripe -stripe_unit stripe_unit dks2d1s0 dks2d2s0 dks2d3s0 dks2d4s0 
show 
end 
exit 

  1. Run xlv_make to create the volume:

    # xlv_make script_file

    script_file is the xlv_make script file you created in step 3.

  2. Create the filesystem by giving this command:

    # mkfs -r extsize=extent_size /dev/dsk/xlv/vol_name

  3. To mount the filesystem immediately, give these commands:

    # mkdir mountdir

    # mount /dev/dsk/xlv/vol_name mountdir

    mountdir is the full pathname of the directory that is the mount point for the filesystem.

  4. To configure the system so that the new filesystem is automatically mounted when the system is booted, add this line to /etc/fstab:

    /dev/dsk/xlv/vol_name mountdir xfs rw,raw=/dev/rdsk/xlv/vol_name 0 0

  5. If the file /etc/grio_config exists, and you see OPTSZ=65536 for each device and OPTSZ=524288(check this) for disks in the real-time subvolume, skip to step 10.

  1. Create the file /etc/grio_config with this command:

    # cfg -d opt_IO_size

  2. If you want soft rate guarantees, edit /etc/grio_config and remove this string:

    RT=1

    from the lines for disks where software retry is required (see the section "/etc/grio_config File Format" in this chapter for more information).

  3. Restart the ggd daemon:

    # /etc/init.d/grio stop

    # /etc/init.d/grio start

    Now the user application can be started. Files created on the real-time subvolume volume can be accessed using guaranteed-rate I/O.



Next | Prev | Up | Top | Contents | Index